A common use of magnetometers is in combination with an inertial based measurement unit (IMU). The magnetic field is generally used to improve the position and orientation detection, especially with respect to the heading component, which would otherwise suffer from unbounded drift resulting from the integration of angular velocity in orientation. The use of an external magnetic field as a reference can serve to limit or eliminate this drift.
Another use of magnetometers is in position tracking or simultaneous localization and mapping (“SLAM”) applications. In this type of usage, the magnetic field is either used to localize the position and/or orientation in space of the magnetometer, given the known characteristics of a generated field (e.g., from a coil placed in a known position), and/or to build a map of the environment, exploiting the “signature” of the magnetic disturbance in such environment to identify a current position and orientation.
In applications such as those mentioned above and others, the magnetometer generally aims to capture the essence of the local magnetic field. This information is often combined with other information sources in tracking algorithms to compute the position and orientation of the device hosting the magnetometer. These tracking algorithms attempt to model the characteristics of the magnetic field variation; the magnetic field in a certain space may depend on the local environment, and may fluctuate with time because of moving objects. Moreover, magnetic disturbances may be caused by the movement of the device on which the magnetometer is integrated, and there may be varying degrees of noise and stability of the magnetic component itself, etc. Additionally, when the magnetometer is integrated with other circuitry or different electronic components, as common in consumer electronics devices (for example smart-phones, tablets, etc.), some amount of magnetic interference is typically present, caused by e.g. inductors, currents from the main power supply tracks, etc.
Currently in such systems, the magnetometer is directly sampled at the desired output data rate (ODR). This approach typically provides satisfactory performance when the ODR is in the order of 100 Hz or higher. However, in the case of low communication rates between the IMU and the Application Processor (AP) side of the device to conserve system resources, or in the presence of rapidly changing magnetic fields, a single magnetic field update may not be sufficient to accurately describe the magnetic field, resulting in loss of useful information. On the other hand, there are applications for which much lower or non-constant ODR are desired or required.
For example, in wireless inertial sensor applications, the use of the wireless link needs to be minimized. In such cases, data rates from a few tens of Hz down to Hz are desired, depending on the application and number of overall sensors wirelessly connected. Similarly, in first responder applications, the data-link might be unreliable. Failures in data reception can result in coarser or variable time resolution between measurement updates (this is a general problem for wireless inertial sensor applications as well).
In a similar way, pedestrian navigation or background activity monitoring benefit from lower ODR to the Application Processor. Here the application might desire data at rates down to a fraction of a Hz to conserve system resources. Another type of application wherein low and variable ODR may be desired are the on-demand driven applications. With respect to such applications, the magnetometer might send data only after a request from the AP side of the device. The ODR in this case is effectively variable and can be as low as a fraction of a Hz.
In addition to the foregoing, a general motivation to the inventors to enable accurate sensor fusion, tracking, and SLAM applications with minimal update rate, is to reduce and relax the overall system requirements. This is of special relevance in general consumer electronics applications since low update rates result in fewer interrupts and lessened contention of communication line and shared bus, allowing for much more flexible and scalable system integration and robust performance. Moreover, low update rates lead to decreased computational demands, since computationally costly fusion algorithms can run at much lower, user selectable, or application driven rates, while the goal is to preserve the same accuracy that could be achieved when processing at high ODRs. This enables a low power motion processing architecture.
For accelerometers and gyroscopes sensors, routinely used in IMU systems, the problem of low ODR may be solved with the use of well-known Strap-Down Integration (SDI) algorithms. In these schemes, angular velocity and acceleration are optimally integrated into rotation and velocity increments, which can be streamed at lower or variable rate without any loss of accuracy as e.g. disclosed by the authors in the applications: U.S. Ser. No. 13/431,570 and U.S. Ser. No. 13/431,584. However, no system to optimally compress and “pack” together relevant information from magnetometers yet exists.
The present disclosure is directed to systems and methods that address one or more of the problems set forth above. However, it should be appreciated that the solution of any particular problem is not a limitation on the scope of this disclosure or of the attached claims except to the extent expressly noted. Additionally, the inclusion of any problem or solution in this Background section is not an indication that the problem or solution represents known prior art except as otherwise expressly noted.